package com.coderman.infosys.auth.app.convert;

import java.util.List;

import com.coderman.infosys.auth.api.dto.authority.AuthorityDTO;
import com.coderman.infosys.auth.api.dto.authority.request.CreateAuthorityRequestDTO;
import com.coderman.infosys.auth.api.dto.authority.request.UpdateAuthorityRequestDTO;
import com.coderman.infosys.auth.api.dto.sdk.RoleAuthorityDTO;
import com.coderman.infosys.auth.api.dto.sdk.UserAuthorityDTO;
import com.coderman.infosys.auth.domain.bo.authority.AuthAggregateBO;
import com.coderman.infosys.auth.domain.bo.authority.AuthorityBO;

import com.coderman.infosys.auth.domain.bo.authority.UserAuthAggregateBO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers;

/**
* @Description:AuthorityConvert接口
* @Author:
* @CreateTime:2022-01-02 15:27:39
* @version v1.0
*/
@Mapper
public interface AuthorityConvert{
	AuthorityConvert INSTANCE = Mappers.getMapper(AuthorityConvert.class);

	/**
	 *
	 * @Description:
	 * @return AuthorityBO
	 */
	 AuthorityBO dto2bo(AuthorityDTO authorityDTO);
	/**
	 *
	 * @Description:
	 * @return AuthorityBO
	 */
	 AuthorityBO dto2bo(UpdateAuthorityRequestDTO updateAuthorityRequestDTO);
	/**
	 *
	 * @Description:
	 * @return List<AuthorityBO>
	 */
	 List<AuthorityBO> createAuthorityRequestDTOs2boList(List<CreateAuthorityRequestDTO> createAuthorityRequestDTOList);
	/**
	 *
	 * @Description:
	 * @return AuthorityDTO
	 */
	 AuthorityDTO bo2dto(AuthorityBO authorityBO);
	/**
	 *
	 * @Description:
	 * @return AuthorityBO
	 */
	 AuthorityBO dto2bo(CreateAuthorityRequestDTO createAuthorityRequestDTO);
	/**
	 *
	 * @Description:
	 * @return List<AuthorityBO>
	 */
	 List<AuthorityBO> updateAuthorityRequestDTOs2boList(List<UpdateAuthorityRequestDTO> updateAuthorityRequestDTOList);
	/**
	 *
	 * @Description:
	 * @return List<AuthorityBO>
	 */
	 List<AuthorityBO> authorityDTOs2boList(List<AuthorityDTO> authorityDTOList);
	/**
	 *
	 * @Description:
	 * @return List<AuthorityDTO>
	 */
	 List<AuthorityDTO> authorityBOs2dtoList(List<AuthorityBO> authorityBOList);


	 UserAuthorityDTO convert2DTO(AuthAggregateBO authAggregateBO);

	 RoleAuthorityDTO convert2RoleAuthDTO(AuthAggregateBO authAggregateBO);


}